package com.jingbian.cppccbackend.mapper.user;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jingbian.cppccbackend.entity.Proposals;
import com.jingbian.cppccbackend.entity.dto.PublicProposalsDTO;
import com.jingbian.cppccbackend.entity.dto.SearchProposalDTO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.repository.query.Param;

import java.util.List;

/**
 * <p>
 * 提案信息表 Mapper 接口
 * </p>
 *
 * @author yezi
 * @since 2025-02-11
 */
@Mapper
public interface ProposalsMapper extends BaseMapper<Proposals> {
    /**
     * 用户
     **/
    /**
     * 查询某个用户的所有提案数据
     * @return List<Proposals>
     */
    List<Proposals> getProposalsByUserId(SearchProposalDTO params);

    /**
     * 提案公示——所有用户愿意公示且被管理员同意公示的完结提案
     * @return List<Proposals>
     */
    List<Proposals> getPublicProposals();

    /**
     * 查询某个提案的详情
     * @param proposalId 提案ID
     * @return Proposals
     */
    Proposals getProposalById(@Param("proposalId") Integer proposalId);


    /**
     * 管理员
     **/
    //    搜索框搜索
    List<Proposals> searchProposals(@Param("searchText") String searchText);

    /**
     * 【初审】查询所有用户的所有提案数据
     * @return List<Proposals>
     */
    List<Proposals> getAllProposalsWithDetails(String status, String proposalType, String startDate, String endDate ,String sort,Integer pageStatus);

    /**
     * 修改提案状态
     * @param proposalId 提案ID
     * @param status 新状态
     */
    void updateProposalStatus(Integer proposalId, String status, Boolean isOr,Integer pageStatus);

    List<Proposals> getSearchPublicProposal(@Param("publicProposalsDTO")PublicProposalsDTO publicProposalsDTO);
}